<?php
/**
 * Controller_Admin_ProductPropertyValue
 *
 * Класс Controller_Admin_ProductPropertyValue отвечает за обработку админских страниц значений свойств товаров
 *
 * @author Mike
 */
class Controller_Admin_ProductPropertyValue extends Controller_Admin {

	/**
	 * Выбор действия по URL
	 *
	 */
	public function action() {
		if(!User_Seance::isAdmin()) throw new Exception('', 403);
		switch ($this->arrRequest[2]) {
			case 'add':
				if(!isset($_GET['id_property'])) User_Seance::moveTo(W_ADMIN . 'product_properties');
				else {
					$objProductProperty = new ProductProperty(intval($_GET['id_property']));
					if(!$objProductProperty->id)  User_Seance::moveTo(W_ADMIN . 'product_properties');
				}
				$this->actionAdd($objProductProperty->id);
				break;
			case 'edit':
				$objProductPropertyValue = new ProductPropertyValue(intval($this->arrRequest[3]));
				if(!$objProductPropertyValue->id) throw new Exception('', 404);
				$this->actionEdit($objProductPropertyValue);
				break;
			default: throw new Exception('', 404);
		}
	}

	/**
	 * Добавление значения свойства товара
	 *
	 * @param int $idProperty - id свойства товара, для которого добавляется значение
	 */
	public function actionAdd($idProperty) {
		if (isset($_POST['ProductPropertyValue'])) {
			$objProductPropertyValue = new ProductPropertyValue($_POST['ProductPropertyValue']);
			if ($objProductPropertyValue->save()) User_Seance::moveTo(W_ADMIN . 'product_properties');
		}
		else $objProductPropertyValue = new ProductPropertyValue();
	
		$this->title = $this->pageHead = 'Добавление значения свойства товара';
			
		$this->showHeader();
			View_ProductProperty::showValueEditForm($objProductPropertyValue, $idProperty);
		$this->showFooter();
	}
	
	/**
	 * Редактирование значения свойства товара
	 *
	 * @param ProductProperty $objProductProperty - объект значния свойства
	 */
	public function actionEdit(ProductPropertyValue $objProductPropertyValue) {
		if (isset($_POST['ProductPropertyValue'])) {
			$objProductPropertyValue = new ProductPropertyValue($_POST['ProductPropertyValue']);
			if ($objProductPropertyValue->save()) User_Seance::moveTo(W_ADMIN . 'product_properties');
		}
	
		$this->title = $this->pageHead = 'Редактирование значения свойства товара';
			
		$this->showHeader();
			View_ProductProperty::showValueEditForm($objProductPropertyValue);
		$this->showFooter();
	}
}